|技术资源门户第一站|
入住:用户 密码


首  页 | 新闻动态 | 网页设计 | 图形图像 | 网络编程 | 电脑技术 | 资源下载 | 专题集锦 | 酷站展示 | 图库素材 | 原创投稿
论  坛 | 栏目待定 | 栏目待定 | 栏目待定 | 栏目待定 | 栏目待定 | 栏目待定 | 栏目待定 | 栏目待定 | 栏目待定 | 栏目待定
热 门 文 章
·(下)用Photoshop“组装”一只标
·微软宣布SQLServer2005功能及售价
·HTML简明手册 — 第十一章 脚本语
·四川风讯科技发展有限公司首届模
·完美之作:茶·咖啡·果汁
·HTML简明手册 — 第九章 样式
·腾讯宣布收购Foxmail
·下拉菜单全攻略之Dreamweaver篇
·ASP初学者常犯的几个错误
·Dreamweaver MX 2004 入门教程之
推 荐文 章
·【PS特训营】(1)《快速纹理》
·最新的技术-XSS(五)
·最新的技术-XSS(四)
·最新的技术-XSS(三)
·最新的技术-XSS(二)
·最新的技术-XSS(一)
·多媒体标记Shvatz 前景
·进入SMIL
·SMIL:多媒体标记
·XML未来的设计:未来的结构
栏目精华
相 关 文 章
  最新更新:  
 
全能搜索:
  开始时间  结束时间 
 
 您现在的位置:首页>网络编程>SQL>新闻
[MS SQL]速度很高的一个分页
日期:2005-3-10 10:43:51     来源:网讯   编辑:网讯 
原来用的一个分页,速度太慢了(后面的页),就搞了这个出来
此代码在MS SQL下通过
topic_endtime为最后回复时间,主建、降序,Clustered

Dim PageSizer,CurrentPage,Board_Id,End_Id

'// 这就是当前页码,可以随便你怎么跳
CurrentPage = Clng(Request("page"))

'// 每页显示PageSize条记录
PageSizer = 20

'// 分论坛的ID
Board_Id = Cint(Request("id"))

'// 就是靠这个做条件了
End_Id = (CurrentPage - 1) * PageSizer

sql = "Select top "&PageSizer&" * From [topic] where topic_boardid="&Board_Id&" and topic_endtime<(Select Min(topic_endtime) as topic_endtime From (Select top "&End_Id&" topic_endtime From [topic] where topic_boardid="&Board_Id&") as temp_topic)"


原理就是取出你要读取的记录的上面那些记录,然后就在这个集合里面用Min(topic_endtime),因为topic_endtime原来已经排序好了,所以取最小的topic_endtime,然后你要读取的记录的topic_endtime值都比这个topic_endtime要小,再top PageSizer就是你要取的记录了

补充:在第一页用top PageSizer

PS:在50万的记录,最后一页都是15ms,
测试机器:Duron 1G + 256 sdram
在服务器上最快是5ms

特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
责任编辑:网讯 原始作者:
信息来源:网讯 录入时间:2005-3-10 10:43:51
浏览次数: 投稿信箱: Wooxun#126.com

  → 发表我的评论      → 查看评论(点击查看)
版权所有 2005-2006©www.woxun.com  维护QQ:8216238
设计版本:网讯中国 2005 VOL.1 程序核心:风讯2.0